package com.kingzoon.seckill.entity;

import java.util.ArrayList;
import java.util.List;

public class UpgFlowchartExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private Integer limit;

    private Integer offset;

    public UpgFlowchartExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setLimit(Integer limit) {
        this.limit = limit;
    }

    public Integer getLimit() {
        return limit;
    }

    public void setOffset(Integer offset) {
        this.offset = offset;
    }

    public Integer getOffset() {
        return offset;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andFlowflagIsNull() {
            addCriterion("FLOWFLAG is null");
            return (Criteria) this;
        }

        public Criteria andFlowflagIsNotNull() {
            addCriterion("FLOWFLAG is not null");
            return (Criteria) this;
        }

        public Criteria andFlowflagEqualTo(Integer value) {
            addCriterion("FLOWFLAG =", value, "flowflag");
            return (Criteria) this;
        }

        public Criteria andFlowflagNotEqualTo(Integer value) {
            addCriterion("FLOWFLAG <>", value, "flowflag");
            return (Criteria) this;
        }

        public Criteria andFlowflagGreaterThan(Integer value) {
            addCriterion("FLOWFLAG >", value, "flowflag");
            return (Criteria) this;
        }

        public Criteria andFlowflagGreaterThanOrEqualTo(Integer value) {
            addCriterion("FLOWFLAG >=", value, "flowflag");
            return (Criteria) this;
        }

        public Criteria andFlowflagLessThan(Integer value) {
            addCriterion("FLOWFLAG <", value, "flowflag");
            return (Criteria) this;
        }

        public Criteria andFlowflagLessThanOrEqualTo(Integer value) {
            addCriterion("FLOWFLAG <=", value, "flowflag");
            return (Criteria) this;
        }

        public Criteria andFlowflagIn(List<Integer> values) {
            addCriterion("FLOWFLAG in", values, "flowflag");
            return (Criteria) this;
        }

        public Criteria andFlowflagNotIn(List<Integer> values) {
            addCriterion("FLOWFLAG not in", values, "flowflag");
            return (Criteria) this;
        }

        public Criteria andFlowflagBetween(Integer value1, Integer value2) {
            addCriterion("FLOWFLAG between", value1, value2, "flowflag");
            return (Criteria) this;
        }

        public Criteria andFlowflagNotBetween(Integer value1, Integer value2) {
            addCriterion("FLOWFLAG not between", value1, value2, "flowflag");
            return (Criteria) this;
        }

        public Criteria andStepnoIsNull() {
            addCriterion("STEPNO is null");
            return (Criteria) this;
        }

        public Criteria andStepnoIsNotNull() {
            addCriterion("STEPNO is not null");
            return (Criteria) this;
        }

        public Criteria andStepnoEqualTo(Integer value) {
            addCriterion("STEPNO =", value, "stepno");
            return (Criteria) this;
        }

        public Criteria andStepnoNotEqualTo(Integer value) {
            addCriterion("STEPNO <>", value, "stepno");
            return (Criteria) this;
        }

        public Criteria andStepnoGreaterThan(Integer value) {
            addCriterion("STEPNO >", value, "stepno");
            return (Criteria) this;
        }

        public Criteria andStepnoGreaterThanOrEqualTo(Integer value) {
            addCriterion("STEPNO >=", value, "stepno");
            return (Criteria) this;
        }

        public Criteria andStepnoLessThan(Integer value) {
            addCriterion("STEPNO <", value, "stepno");
            return (Criteria) this;
        }

        public Criteria andStepnoLessThanOrEqualTo(Integer value) {
            addCriterion("STEPNO <=", value, "stepno");
            return (Criteria) this;
        }

        public Criteria andStepnoIn(List<Integer> values) {
            addCriterion("STEPNO in", values, "stepno");
            return (Criteria) this;
        }

        public Criteria andStepnoNotIn(List<Integer> values) {
            addCriterion("STEPNO not in", values, "stepno");
            return (Criteria) this;
        }

        public Criteria andStepnoBetween(Integer value1, Integer value2) {
            addCriterion("STEPNO between", value1, value2, "stepno");
            return (Criteria) this;
        }

        public Criteria andStepnoNotBetween(Integer value1, Integer value2) {
            addCriterion("STEPNO not between", value1, value2, "stepno");
            return (Criteria) this;
        }

        public Criteria andStepnameIsNull() {
            addCriterion("STEPNAME is null");
            return (Criteria) this;
        }

        public Criteria andStepnameIsNotNull() {
            addCriterion("STEPNAME is not null");
            return (Criteria) this;
        }

        public Criteria andStepnameEqualTo(String value) {
            addCriterion("STEPNAME =", value, "stepname");
            return (Criteria) this;
        }

        public Criteria andStepnameNotEqualTo(String value) {
            addCriterion("STEPNAME <>", value, "stepname");
            return (Criteria) this;
        }

        public Criteria andStepnameGreaterThan(String value) {
            addCriterion("STEPNAME >", value, "stepname");
            return (Criteria) this;
        }

        public Criteria andStepnameGreaterThanOrEqualTo(String value) {
            addCriterion("STEPNAME >=", value, "stepname");
            return (Criteria) this;
        }

        public Criteria andStepnameLessThan(String value) {
            addCriterion("STEPNAME <", value, "stepname");
            return (Criteria) this;
        }

        public Criteria andStepnameLessThanOrEqualTo(String value) {
            addCriterion("STEPNAME <=", value, "stepname");
            return (Criteria) this;
        }

        public Criteria andStepnameLike(String value) {
            addCriterion("STEPNAME like", value, "stepname");
            return (Criteria) this;
        }

        public Criteria andStepnameNotLike(String value) {
            addCriterion("STEPNAME not like", value, "stepname");
            return (Criteria) this;
        }

        public Criteria andStepnameIn(List<String> values) {
            addCriterion("STEPNAME in", values, "stepname");
            return (Criteria) this;
        }

        public Criteria andStepnameNotIn(List<String> values) {
            addCriterion("STEPNAME not in", values, "stepname");
            return (Criteria) this;
        }

        public Criteria andStepnameBetween(String value1, String value2) {
            addCriterion("STEPNAME between", value1, value2, "stepname");
            return (Criteria) this;
        }

        public Criteria andStepnameNotBetween(String value1, String value2) {
            addCriterion("STEPNAME not between", value1, value2, "stepname");
            return (Criteria) this;
        }

        public Criteria andGroupidIsNull() {
            addCriterion("GROUPID is null");
            return (Criteria) this;
        }

        public Criteria andGroupidIsNotNull() {
            addCriterion("GROUPID is not null");
            return (Criteria) this;
        }

        public Criteria andGroupidEqualTo(String value) {
            addCriterion("GROUPID =", value, "groupid");
            return (Criteria) this;
        }

        public Criteria andGroupidNotEqualTo(String value) {
            addCriterion("GROUPID <>", value, "groupid");
            return (Criteria) this;
        }

        public Criteria andGroupidGreaterThan(String value) {
            addCriterion("GROUPID >", value, "groupid");
            return (Criteria) this;
        }

        public Criteria andGroupidGreaterThanOrEqualTo(String value) {
            addCriterion("GROUPID >=", value, "groupid");
            return (Criteria) this;
        }

        public Criteria andGroupidLessThan(String value) {
            addCriterion("GROUPID <", value, "groupid");
            return (Criteria) this;
        }

        public Criteria andGroupidLessThanOrEqualTo(String value) {
            addCriterion("GROUPID <=", value, "groupid");
            return (Criteria) this;
        }

        public Criteria andGroupidLike(String value) {
            addCriterion("GROUPID like", value, "groupid");
            return (Criteria) this;
        }

        public Criteria andGroupidNotLike(String value) {
            addCriterion("GROUPID not like", value, "groupid");
            return (Criteria) this;
        }

        public Criteria andGroupidIn(List<String> values) {
            addCriterion("GROUPID in", values, "groupid");
            return (Criteria) this;
        }

        public Criteria andGroupidNotIn(List<String> values) {
            addCriterion("GROUPID not in", values, "groupid");
            return (Criteria) this;
        }

        public Criteria andGroupidBetween(String value1, String value2) {
            addCriterion("GROUPID between", value1, value2, "groupid");
            return (Criteria) this;
        }

        public Criteria andGroupidNotBetween(String value1, String value2) {
            addCriterion("GROUPID not between", value1, value2, "groupid");
            return (Criteria) this;
        }

        public Criteria andInorderIsNull() {
            addCriterion("INORDER is null");
            return (Criteria) this;
        }

        public Criteria andInorderIsNotNull() {
            addCriterion("INORDER is not null");
            return (Criteria) this;
        }

        public Criteria andInorderEqualTo(String value) {
            addCriterion("INORDER =", value, "inorder");
            return (Criteria) this;
        }

        public Criteria andInorderNotEqualTo(String value) {
            addCriterion("INORDER <>", value, "inorder");
            return (Criteria) this;
        }

        public Criteria andInorderGreaterThan(String value) {
            addCriterion("INORDER >", value, "inorder");
            return (Criteria) this;
        }

        public Criteria andInorderGreaterThanOrEqualTo(String value) {
            addCriterion("INORDER >=", value, "inorder");
            return (Criteria) this;
        }

        public Criteria andInorderLessThan(String value) {
            addCriterion("INORDER <", value, "inorder");
            return (Criteria) this;
        }

        public Criteria andInorderLessThanOrEqualTo(String value) {
            addCriterion("INORDER <=", value, "inorder");
            return (Criteria) this;
        }

        public Criteria andInorderLike(String value) {
            addCriterion("INORDER like", value, "inorder");
            return (Criteria) this;
        }

        public Criteria andInorderNotLike(String value) {
            addCriterion("INORDER not like", value, "inorder");
            return (Criteria) this;
        }

        public Criteria andInorderIn(List<String> values) {
            addCriterion("INORDER in", values, "inorder");
            return (Criteria) this;
        }

        public Criteria andInorderNotIn(List<String> values) {
            addCriterion("INORDER not in", values, "inorder");
            return (Criteria) this;
        }

        public Criteria andInorderBetween(String value1, String value2) {
            addCriterion("INORDER between", value1, value2, "inorder");
            return (Criteria) this;
        }

        public Criteria andInorderNotBetween(String value1, String value2) {
            addCriterion("INORDER not between", value1, value2, "inorder");
            return (Criteria) this;
        }

        public Criteria andSetactiveIsNull() {
            addCriterion("SETACTIVE is null");
            return (Criteria) this;
        }

        public Criteria andSetactiveIsNotNull() {
            addCriterion("SETACTIVE is not null");
            return (Criteria) this;
        }

        public Criteria andSetactiveEqualTo(String value) {
            addCriterion("SETACTIVE =", value, "setactive");
            return (Criteria) this;
        }

        public Criteria andSetactiveNotEqualTo(String value) {
            addCriterion("SETACTIVE <>", value, "setactive");
            return (Criteria) this;
        }

        public Criteria andSetactiveGreaterThan(String value) {
            addCriterion("SETACTIVE >", value, "setactive");
            return (Criteria) this;
        }

        public Criteria andSetactiveGreaterThanOrEqualTo(String value) {
            addCriterion("SETACTIVE >=", value, "setactive");
            return (Criteria) this;
        }

        public Criteria andSetactiveLessThan(String value) {
            addCriterion("SETACTIVE <", value, "setactive");
            return (Criteria) this;
        }

        public Criteria andSetactiveLessThanOrEqualTo(String value) {
            addCriterion("SETACTIVE <=", value, "setactive");
            return (Criteria) this;
        }

        public Criteria andSetactiveLike(String value) {
            addCriterion("SETACTIVE like", value, "setactive");
            return (Criteria) this;
        }

        public Criteria andSetactiveNotLike(String value) {
            addCriterion("SETACTIVE not like", value, "setactive");
            return (Criteria) this;
        }

        public Criteria andSetactiveIn(List<String> values) {
            addCriterion("SETACTIVE in", values, "setactive");
            return (Criteria) this;
        }

        public Criteria andSetactiveNotIn(List<String> values) {
            addCriterion("SETACTIVE not in", values, "setactive");
            return (Criteria) this;
        }

        public Criteria andSetactiveBetween(String value1, String value2) {
            addCriterion("SETACTIVE between", value1, value2, "setactive");
            return (Criteria) this;
        }

        public Criteria andSetactiveNotBetween(String value1, String value2) {
            addCriterion("SETACTIVE not between", value1, value2, "setactive");
            return (Criteria) this;
        }

        public Criteria andSetholdIsNull() {
            addCriterion("SETHOLD is null");
            return (Criteria) this;
        }

        public Criteria andSetholdIsNotNull() {
            addCriterion("SETHOLD is not null");
            return (Criteria) this;
        }

        public Criteria andSetholdEqualTo(String value) {
            addCriterion("SETHOLD =", value, "sethold");
            return (Criteria) this;
        }

        public Criteria andSetholdNotEqualTo(String value) {
            addCriterion("SETHOLD <>", value, "sethold");
            return (Criteria) this;
        }

        public Criteria andSetholdGreaterThan(String value) {
            addCriterion("SETHOLD >", value, "sethold");
            return (Criteria) this;
        }

        public Criteria andSetholdGreaterThanOrEqualTo(String value) {
            addCriterion("SETHOLD >=", value, "sethold");
            return (Criteria) this;
        }

        public Criteria andSetholdLessThan(String value) {
            addCriterion("SETHOLD <", value, "sethold");
            return (Criteria) this;
        }

        public Criteria andSetholdLessThanOrEqualTo(String value) {
            addCriterion("SETHOLD <=", value, "sethold");
            return (Criteria) this;
        }

        public Criteria andSetholdLike(String value) {
            addCriterion("SETHOLD like", value, "sethold");
            return (Criteria) this;
        }

        public Criteria andSetholdNotLike(String value) {
            addCriterion("SETHOLD not like", value, "sethold");
            return (Criteria) this;
        }

        public Criteria andSetholdIn(List<String> values) {
            addCriterion("SETHOLD in", values, "sethold");
            return (Criteria) this;
        }

        public Criteria andSetholdNotIn(List<String> values) {
            addCriterion("SETHOLD not in", values, "sethold");
            return (Criteria) this;
        }

        public Criteria andSetholdBetween(String value1, String value2) {
            addCriterion("SETHOLD between", value1, value2, "sethold");
            return (Criteria) this;
        }

        public Criteria andSetholdNotBetween(String value1, String value2) {
            addCriterion("SETHOLD not between", value1, value2, "sethold");
            return (Criteria) this;
        }

        public Criteria andPosconditionIsNull() {
            addCriterion("POSCONDITION is null");
            return (Criteria) this;
        }

        public Criteria andPosconditionIsNotNull() {
            addCriterion("POSCONDITION is not null");
            return (Criteria) this;
        }

        public Criteria andPosconditionEqualTo(String value) {
            addCriterion("POSCONDITION =", value, "poscondition");
            return (Criteria) this;
        }

        public Criteria andPosconditionNotEqualTo(String value) {
            addCriterion("POSCONDITION <>", value, "poscondition");
            return (Criteria) this;
        }

        public Criteria andPosconditionGreaterThan(String value) {
            addCriterion("POSCONDITION >", value, "poscondition");
            return (Criteria) this;
        }

        public Criteria andPosconditionGreaterThanOrEqualTo(String value) {
            addCriterion("POSCONDITION >=", value, "poscondition");
            return (Criteria) this;
        }

        public Criteria andPosconditionLessThan(String value) {
            addCriterion("POSCONDITION <", value, "poscondition");
            return (Criteria) this;
        }

        public Criteria andPosconditionLessThanOrEqualTo(String value) {
            addCriterion("POSCONDITION <=", value, "poscondition");
            return (Criteria) this;
        }

        public Criteria andPosconditionLike(String value) {
            addCriterion("POSCONDITION like", value, "poscondition");
            return (Criteria) this;
        }

        public Criteria andPosconditionNotLike(String value) {
            addCriterion("POSCONDITION not like", value, "poscondition");
            return (Criteria) this;
        }

        public Criteria andPosconditionIn(List<String> values) {
            addCriterion("POSCONDITION in", values, "poscondition");
            return (Criteria) this;
        }

        public Criteria andPosconditionNotIn(List<String> values) {
            addCriterion("POSCONDITION not in", values, "poscondition");
            return (Criteria) this;
        }

        public Criteria andPosconditionBetween(String value1, String value2) {
            addCriterion("POSCONDITION between", value1, value2, "poscondition");
            return (Criteria) this;
        }

        public Criteria andPosconditionNotBetween(String value1, String value2) {
            addCriterion("POSCONDITION not between", value1, value2, "poscondition");
            return (Criteria) this;
        }

        public Criteria andPreconditionIsNull() {
            addCriterion("PRECONDITION is null");
            return (Criteria) this;
        }

        public Criteria andPreconditionIsNotNull() {
            addCriterion("PRECONDITION is not null");
            return (Criteria) this;
        }

        public Criteria andPreconditionEqualTo(String value) {
            addCriterion("PRECONDITION =", value, "precondition");
            return (Criteria) this;
        }

        public Criteria andPreconditionNotEqualTo(String value) {
            addCriterion("PRECONDITION <>", value, "precondition");
            return (Criteria) this;
        }

        public Criteria andPreconditionGreaterThan(String value) {
            addCriterion("PRECONDITION >", value, "precondition");
            return (Criteria) this;
        }

        public Criteria andPreconditionGreaterThanOrEqualTo(String value) {
            addCriterion("PRECONDITION >=", value, "precondition");
            return (Criteria) this;
        }

        public Criteria andPreconditionLessThan(String value) {
            addCriterion("PRECONDITION <", value, "precondition");
            return (Criteria) this;
        }

        public Criteria andPreconditionLessThanOrEqualTo(String value) {
            addCriterion("PRECONDITION <=", value, "precondition");
            return (Criteria) this;
        }

        public Criteria andPreconditionLike(String value) {
            addCriterion("PRECONDITION like", value, "precondition");
            return (Criteria) this;
        }

        public Criteria andPreconditionNotLike(String value) {
            addCriterion("PRECONDITION not like", value, "precondition");
            return (Criteria) this;
        }

        public Criteria andPreconditionIn(List<String> values) {
            addCriterion("PRECONDITION in", values, "precondition");
            return (Criteria) this;
        }

        public Criteria andPreconditionNotIn(List<String> values) {
            addCriterion("PRECONDITION not in", values, "precondition");
            return (Criteria) this;
        }

        public Criteria andPreconditionBetween(String value1, String value2) {
            addCriterion("PRECONDITION between", value1, value2, "precondition");
            return (Criteria) this;
        }

        public Criteria andPreconditionNotBetween(String value1, String value2) {
            addCriterion("PRECONDITION not between", value1, value2, "precondition");
            return (Criteria) this;
        }

        public Criteria andResetIsNull() {
            addCriterion("RESET is null");
            return (Criteria) this;
        }

        public Criteria andResetIsNotNull() {
            addCriterion("RESET is not null");
            return (Criteria) this;
        }

        public Criteria andResetEqualTo(String value) {
            addCriterion("RESET =", value, "reset");
            return (Criteria) this;
        }

        public Criteria andResetNotEqualTo(String value) {
            addCriterion("RESET <>", value, "reset");
            return (Criteria) this;
        }

        public Criteria andResetGreaterThan(String value) {
            addCriterion("RESET >", value, "reset");
            return (Criteria) this;
        }

        public Criteria andResetGreaterThanOrEqualTo(String value) {
            addCriterion("RESET >=", value, "reset");
            return (Criteria) this;
        }

        public Criteria andResetLessThan(String value) {
            addCriterion("RESET <", value, "reset");
            return (Criteria) this;
        }

        public Criteria andResetLessThanOrEqualTo(String value) {
            addCriterion("RESET <=", value, "reset");
            return (Criteria) this;
        }

        public Criteria andResetLike(String value) {
            addCriterion("RESET like", value, "reset");
            return (Criteria) this;
        }

        public Criteria andResetNotLike(String value) {
            addCriterion("RESET not like", value, "reset");
            return (Criteria) this;
        }

        public Criteria andResetIn(List<String> values) {
            addCriterion("RESET in", values, "reset");
            return (Criteria) this;
        }

        public Criteria andResetNotIn(List<String> values) {
            addCriterion("RESET not in", values, "reset");
            return (Criteria) this;
        }

        public Criteria andResetBetween(String value1, String value2) {
            addCriterion("RESET between", value1, value2, "reset");
            return (Criteria) this;
        }

        public Criteria andResetNotBetween(String value1, String value2) {
            addCriterion("RESET not between", value1, value2, "reset");
            return (Criteria) this;
        }

        public Criteria andIsbreakIsNull() {
            addCriterion("ISBREAK is null");
            return (Criteria) this;
        }

        public Criteria andIsbreakIsNotNull() {
            addCriterion("ISBREAK is not null");
            return (Criteria) this;
        }

        public Criteria andIsbreakEqualTo(String value) {
            addCriterion("ISBREAK =", value, "isbreak");
            return (Criteria) this;
        }

        public Criteria andIsbreakNotEqualTo(String value) {
            addCriterion("ISBREAK <>", value, "isbreak");
            return (Criteria) this;
        }

        public Criteria andIsbreakGreaterThan(String value) {
            addCriterion("ISBREAK >", value, "isbreak");
            return (Criteria) this;
        }

        public Criteria andIsbreakGreaterThanOrEqualTo(String value) {
            addCriterion("ISBREAK >=", value, "isbreak");
            return (Criteria) this;
        }

        public Criteria andIsbreakLessThan(String value) {
            addCriterion("ISBREAK <", value, "isbreak");
            return (Criteria) this;
        }

        public Criteria andIsbreakLessThanOrEqualTo(String value) {
            addCriterion("ISBREAK <=", value, "isbreak");
            return (Criteria) this;
        }

        public Criteria andIsbreakLike(String value) {
            addCriterion("ISBREAK like", value, "isbreak");
            return (Criteria) this;
        }

        public Criteria andIsbreakNotLike(String value) {
            addCriterion("ISBREAK not like", value, "isbreak");
            return (Criteria) this;
        }

        public Criteria andIsbreakIn(List<String> values) {
            addCriterion("ISBREAK in", values, "isbreak");
            return (Criteria) this;
        }

        public Criteria andIsbreakNotIn(List<String> values) {
            addCriterion("ISBREAK not in", values, "isbreak");
            return (Criteria) this;
        }

        public Criteria andIsbreakBetween(String value1, String value2) {
            addCriterion("ISBREAK between", value1, value2, "isbreak");
            return (Criteria) this;
        }

        public Criteria andIsbreakNotBetween(String value1, String value2) {
            addCriterion("ISBREAK not between", value1, value2, "isbreak");
            return (Criteria) this;
        }
    }

    /**
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}